package com.six.work.controller;

import com.six.work.entity.*;
import com.six.work.services.CompanyServices;
import com.six.work.utils.Result;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("company")
public class CompanyController {
    @Autowired
    private CompanyServices companyServices;

//    @GetMapping("/list")
//    public List<Company> findAllCompany(){
//        List<Company> list = companyServices.findAllCompany();
//        return list;
//    }

    @GetMapping("/list")
    public List<CompanyView> findAllCompany(@RequestParam(value = "companyName", defaultValue = "") String companyName,
                                            @RequestParam(value = "state_id", defaultValue = "0") Integer state_id) {
//        Result result = new Result();
        List<CompanyView> lists = null;
        if (state_id == 0) {  //没有选择状态的时候
            lists = companyServices.findCompanyByName(companyName);
        } else {
            lists = companyServices.finComByStateAndcomName(companyName, state_id);
        }
        return lists;
//        result.setCode(200);
//        result.setMessage("查询成功");
//        result.setObject(lists);
//        return result;
    }

    @GetMapping("/del")
    public Integer DelCompanyByID(@RequestParam("company_id") Integer company_id) {
//        Result result = new Result();
        return companyServices.DelCompanyByID(company_id);
//        int i = companyServices.DelCompanyByID(company_id);
//        if(i==1) {
//            result.setCode(200);
//            result.setMessage("删除成功");
//        }else{
//            result.setCode(300);
//            result.setMessage("删除失败");
//        }
//        return  result;

    }

    @GetMapping("/list1")
    public  List<Company> findCompanyManageByName(String comName)
   {
//    Result result = new Result();
        return companyServices.findCompanyManageByName(comName);
//        List<Company> list = companyServices.findCompanyManageByName(comName);
//        result.setCode(200);
//        result.setMessage("查询成功");
//        result.setObject(list);
//        return result;
    }

    @GetMapping("/update")
    public String updateComState(@RequestParam("company_id") Integer company_id) {
        return companyServices.updateComState(company_id);
//        Result result = new Result();
//        String update = companyServices.updateComState(company_id);
//        result.setObject(update);
//        return result;
    }

    @GetMapping("/update1")
    public String updateComState1(@RequestParam("company_id") Integer company_id) {
        return companyServices.updateComState1(company_id);
//        Result result = new Result();
//        String update = companyServices.updateComState1(company_id);
//        result.setObject(update);
//        return result;
    }

    @PostMapping("/login")
    public Result UserLogin(@RequestBody Company company) {
        Result result = new Result();
        Company com = companyServices.UserLogin(company.getCompany_number());
       // if (com != null) { //stu返回对象不为空则表示，用户名正确
          //  if (com.getCompany_pass().equals(company.getCompany_pass())) { //为真则表示，密码正确
          //      return 200;
        //    } else {  //为假则表示，密码错误
        //        return 201;
        //    }
      //  } else { //stu返回对象为空则表示，用户不正确
       //     return 202;
      //  }
  //  }
        if (com != null) { //stu返回对象不为空则表示，用户名正确
            if (com.getCompany_pass().equals(company.getCompany_pass())) { //为真则表示，密码正确
                result.setCode(200);
           } else {  //为假则表示，密码错误
                result.setCode(201);
            }
        } else { //stu返回对象为空则表示，用户不正确
           result.setCode(202);
        }
        result.setObject(com);
        return result;
  }

    @PostMapping("/add")
    public Integer InsertCompany(@RequestBody Company company){
        return companyServices.insertCompany(company);
//        Result result = new Result();
//        int i = companyServices.insertCompany(company);
//        if(i==1){
//            result.setCode(200);
//            result.setMessage("添加成功");
//        }else{
//            result.setCode(300);
//            result.setMessage("添加失败");
//        }
//        return result;
    }


    @GetMapping("/look")
    public Company getLookPage(@RequestParam("company_id") Integer company_id) {
        return companyServices.SelectComByID(company_id);
//        Result result = new Result();
//        Company list = companyServices.SelectComByID(company_id);
//        result.setCode(200);
//        result.setMessage("查询成功");
//        result.setObject(list);
//        return result;
    }

    //前端页面Aworkcompany连数据库
    @GetMapping("/list2")
    public List<Company> findAllCompany1() {
        List<Company> list = companyServices.findAllCompany1();
        return list;
    }

    //搜索job_add
    @GetMapping("/addlist")
    public List<Company> findCompanyByAdd(String job_add) {
        List<Company> list = companyServices.findCompanyByAdd(job_add);
        return list;
    }

    //搜索company_type
    @GetMapping("/typelist")
    public List<Company> findCompanyByType(String company_type) {
        List<Company> list = companyServices.findCompanyByType(company_type);
        return list;
    }

    //搜索company_scale
    @GetMapping("/scalelist")
    public List<Company> findCompanyByScale(String company_scale) {
        List<Company> list = companyServices.findCompanyByScale(company_scale);
        return list;
    }

    //企业认证添加
    @GetMapping("/update3")
    public Company getUpdatePage(@RequestParam("company_id") Integer company_id){

        return companyServices.SelectCompanyByID(company_id);
    }

    @PostMapping("/update3")
    public Integer UpdateCompany(@RequestBody Company company) {

        return companyServices.updateCompany(company);
    }

    @GetMapping("/typelist1")
    public List<Company> findComType(){
        return companyServices.findComType();
    }

    @GetMapping("/addlist1")
    public List<Company> findComAdd(){
        return companyServices.findComAdd();
    }




    //前端页面间Aworkcompany传值到positionItem(试)
    @GetMapping("/post1")
    public List<CompanyAndPositionView> SelectComByID2(@RequestParam("company_id") Integer company_id) {
        return companyServices.SelectComByID2(company_id);
    }

    //可视化
    @GetMapping("/all")
    public List<Company> findAllCom(){
        List<Company> list=companyServices.findAllCom();
        return list;
    }

    //今日新增
    @GetMapping("/today")
    public Integer findTodayCom(){
        return companyServices.FindTodayCom();
    }

    //本月新增
    @GetMapping("/month")
    public Integer findMonthCom(){
        return companyServices.FindMonthCom();
    }

    @GetMapping("/pie")
    public List<CompanyType> SumComType(){
        List<CompanyType> list=companyServices.SumComType();
        return list;
    }

    @GetMapping("/top10")
    public List<Company> top10Com(){
        List<Company> list=companyServices.top10Com();
        return list;
    }

    //地图
    @GetMapping("/china")
    public List<CompanyAdd> findAddCom(){
        List<CompanyAdd> list=companyServices.findAddCom();
        return list;
    }
}
